(define (exponentiation? exp) 
  (and (pair? exp) (eq? (car exp) '**))) 

(define (base exp) 
  (cadr exp)) 

(define (exponent exp) 
  (caddr exp)) 

(define (make-exponentiation base exp) 
  (cond ((=number? base 1) 1) 
        ((=number? exp 1) base) 
        ((=number? exp 0) 1) 
        (else  
          (list '** base exp)))) 
